One of the most difficult tasks of any software company is understanding how customers are using the existing version of the software so that improvements can be made in building the next version. Many companies choose to survey the customer explicitly. But surveys are laborious to design and administer and require significant effort on the part of the customer to fill out.